import * as XLSX from 'xlsx'; // 使用命名导入
import FileSaver from 'file-saver';

export default function(tableColumns, exportTable, formatJson, fileName, sheetName='Sheet1'){
    // 获取表格列定义，并过滤掉"操作"列及选择列（如果有）
    const columns = tableColumns
    .filter(column => !column.type || column.type !== 'selection') // 过滤掉类型为 selection 的列
    .filter(column => column.label !== '操作') // 过滤掉标签为 "操作" 的列
    .map(column => ({
        label: column.label,
        prop: column.property
    }));

    // 调试输出，检查 productTable 和 columns 的状态
    console.log('Product Table:', exportTable);
    console.log('Columns:', columns);

    // 确保 productTable 是一个数组
    const wsData = formatJson(columns, exportTable || []);

    // 打印 wsData 确认数据行被正确处理
    console.log('Formatted Data Rows:', wsData);

    // 添加列标题作为第一行，并打印最终的 formattedData
    const columnTitles = columns.map(col => col.label);
    const formattedData = [columnTitles, ...wsData];
    console.log('Final Formatted Data:', formattedData);
    // 创建工作表
    const ws = XLSX.utils.aoa_to_sheet(formattedData);
    /* 创建工作簿 */
    const wb = XLSX.utils.book_new();
    XLSX.utils.book_append_sheet(wb, ws, sheetName);
     /* 生成文件并下载 */
    XLSX.writeFile(wb, fileName);
}